package work.mediway.mdm.biz.mapper.patient;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

import work.mediway.mdm.biz.vo.patient.StatisticsPatientNumVO;
import work.mediway.mdm.biz.entity.patient.PaAddress;

@Mapper
public interface PaAddressMapper extends BaseMapper<PaAddress> {
    /**
     * 按省份统计患者
     * 只关联省份
     *
     * @param addressTypeCode 住址类型
     * @return List<StatisticsPatientNumVO>     key：province_desc, patient_num
     */
    List<StatisticsPatientNumVO> statisticsProvNumByAreaProv(@Param("addressTypeCode") String addressTypeCode);

    /**
     * 按省份统计患者
     * 只关联城市
     *
     * @param addressTypeCode 住址类型
     * @return List<StatisticsPatientNumVO>     key：province_desc, patient_num
     */
    List<StatisticsPatientNumVO> statisticsProvNumByAreaCity(@Param("addressTypeCode") String addressTypeCode);

    /**
     * 按省份统计患者
     * 只关联城市下一级
     *
     * @param addressTypeCode 住址类型
     * @return List<StatisticsPatientNumVO>     key：province_desc, patient_num
     */
    List<StatisticsPatientNumVO> statisticsProvNumByAreaCountry(@Param("addressTypeCode") String addressTypeCode);

    /**
     * 按城市统计患者
     *
     * @param typeCode 住址类型
     * @return List<StatisticsPatientNumVO>
     */
    List<StatisticsPatientNumVO> statisticsCityNumByAreaCity(@Param("addressTypeCode") String typeCode);

    /**
     * 按城市统计患者
     *
     * @param typeCode 住址类型
     * @return List<StatisticsPatientNumVO>
     */
    List<StatisticsPatientNumVO> statisticsCityNumByAreaCounty(@Param("addressTypeCode") String typeCode);
}